﻿//using System.Collections;
//using System.Collections.Generic;
//using System.Linq;

//namespace Avin.Infrastructure.Linq
//{
//    public class Object2<T>
//    {
//        public static T ToAnonymousObject(object entity)
//        {
//            var properties = typeof(T).GetProperties();
//            object[] datas = new object[properties.Length];
//            for (int i = 0; i < properties.Length; i++)
//            {
//                var propertyInfo = properties[i];
//                var entityMember = entity.GetType().GetProperty(propertyInfo.Name);
//                if (entityMember == null)
//                    continue;

//                datas[i] = entityMember.GetAccessors()[0].Invoke(entity, null);
//            }
//            return (T)typeof(T).GetConstructor(typeof(T).GetGenericArguments()).Invoke(datas);
//        }

//        public static IEnumerable<T> ToAnonymousList(IEnumerable result)
//        {
//            List<T> list = new();
//            foreach (var obj in ((IList)result).Cast<object>())
//                list.Add(ToAnonymousObject(obj));

//            return list;
//        }
//    }
//}
